// Description: token相关的工具函数

// 生成token
const getToken = (id) => {
    return btoa(
        JSON.stringify({
            id,
            date: Date.now(),
        })
    )
}

// 解析token
const parseToken = (token) => {
    try {
        const { id, date } = JSON.parse(atob(token))
        return {
            id,
            date,
        }
    } catch (error) {
        return null
    }
}

// 检查是否过期，3小时过期，返回true表示未过期，false表示过期
const checkExpire = (date) => {
    try {
        if (Date.now() - date > 1000 * 60 * 60 * 3) {
            return false
        } else {
            return true
        }
    } catch (error) {
        return false
    }
}

// 检查token是否有效，返回true表示有效，false表示无效
const checkToken = (token) => {
    try {
        const { date } = parseToken(token)
        if (checkExpire(date)) {
            return true
        }
    } catch (error) {
        return false
    }
}

module.exports = {
    getToken,
    parseToken,
    checkToken,
}
